30 DIM AF(21),AG(21),AE(8),AJ(5),AB(4),A2(6),AC(21),AH(21),Z8(21),ZY(21),ZX(21),A1(6),F4(6),AK(7),AQ(7),AR(10),RD(21),CC(21),AD(21),CP$(39),CS$(41),TX(21),TZ(21),CZ(21,5),CW$(21,5),CY(21),CV(21),A5(23)
40 RESTORE 45:FOR LP=1 TO 39:READ CP$(LP):NEXT:FOR LP=1 TO 41:READ CS$(LP):NEXT:FOR LP=1 TO 7:READ AQ(LP):NEXT:FOR LP=1 TO 6:READ A1(LP):NEXT:FOR LP=1 TO 7:READ AK(LP):NEXT:FOR LP=1 TO 10:READ AR(LP):NEXT:GOSUB 7400
45 DATA KILL,ATTACK,LOOK,RUN,PANIC,SEARCH,SAVE,INFORMATION,INVENTORY,SUICIDE,TRAIN,HEALTH,APPEAL,BYE,STOP,QUIT,EXPERIENCE,HELP,HIDE,CAST,LIST,BRIEF,BANK,TIME,*EDIT,*INV,*STATUS,*CALL,*SHELL,*LINK,EAT,PRAY,TOP,CASINO,LINEFEEDS,PASSWORD,MAIL,USERS,CHAT
50 DATA KILL,ATTACK,GO,USE,READ,EXAMINE,LOOK,ENTER,GET,TAKE,DROP,PUT,SELL,BREAK,SMASH,CLOSE,OPEN,DRAW,WIELD,WEAR,RETURN,CAST,BUY,LOCK,UNLOCK,PICKLOCK,FIX,REPAIR,CHARGE,HELP,DRINK,*TELEPORT,*NM,*DISCARD,*DROP,*KILL,*CALL,*EDIT,EAT,MOVE,TALK
60 DATA Fighter,Magic User,Thief,Cleric,Paladin,Ranger,Dungeon Master,Strength,Intelligence,Wisdom,Dexterity,Constitution,Piety,north,east,south,west,out,up,down,one,two,three,four,five,six,seven,eight,nine,ten
70 FG=79:HRT=5:ERT=10:RM=0:GOSUB 6750:IF C2 THEN 170
80 A="Press [ENTER] to roll your character:":CALL IO.I:CALL IO.O:A="Select your character class:":CALL IO.O:XX=6:IF LM THEN XX=7
90 FOR L=1 TO XX:A=MID$(STR$(L),2)+"> "+AQ(L):CALL IO.O:NEXT:FG=1:A="?":CALL IO.I:C2=VAL(AL):IF C2<1 OR C2>XX THEN 80
100 AM=AQ(C2):A="Enter Character Statistics, Range from 8 to 18, Average less than 13":CALL IO.O
110 F3!=0:FOR LP=1 TO 6:A=A1(LP)+">":CALL IO.I:NV=VAL(AL):IF NV<8 OR NV>18 THEN A="Invalid entry -- only numbers from 8 to 18":CALL IO.O:GOTO 100
120 F3!=F3!+NV:F4(LP)=NV:NEXT:F3!=F3!/6:IF F3!>12 THEN A="Average"+STR$(F3!)+", too high, try again..":CALL IO.O:GOTO 100
130 A="Your average is"+STR$(F3!)+", change anything? ":FG=1:CALL IO.I:IF YE THEN 100
170 GOSUB 6560:SG=1:WT=0:FOR LY=1 TO 20:IF TX(LY)<0 THEN GET 8,ABS(TX(LY)):WT=WT+VAL(W6$) ELSE IF TX(LY)=0 THEN TR=LY-1:GOTO 190
180 NEXT LY:TR=20
190 W1=0:W2=0:W3=0:W4=0:W5=0:W6=0:FOR LP=1 TO 20:CC(LP)=0:AD(LP)="":FOR LN=1 TO 5:CZ(LP,LN)=0:NEXT:NEXT:NM=0
200 CALL IO.O:A="Press [ENTER] to begin the Adventure...":CALL IO.I:CR=1:CALL IO.O:GOSUB 6540
210 IF RM>0 AND RM<=LOF(5)/470 THEN GET 5,RM:GOTO 250
220 IF RM>LOF(5)/470 AND C2=7 THEN GOSUB 6830:GOSUB 6560:IF DI THEN 210
230 IF LOF(5)/470=>TS(9)THEN A="Non-descrip:RM#"+STR$(RM):CALL IO.O:RM=TS(9):GOSUB 6560:GOTO 210
240 A="Nondescrip room file":CALL IO.O:EXIT SUB
250 IF I9 OR AB(1)=STRING$(80,32)THEN A=AP:IF LM OR C2=7 THEN AI=A:GOSUB 6780:A=AI+" |Monclass"+STR$(CVI(A6))+"|Rm"+STR$(RM):CALL IO.O:GOTO 280 ELSE CALL IO.O:GOTO 280
260 FOR LP=1 TO 4:IF AB(LP)=STRING$(80,32)THEN 280
270 A=AB(LP):CALL IO.O:NEXT
280 D9=0:IF I9 THEN A="" ELSE A="The exits are "
290 FOR L=1 TO 7:IF CVI(AE(L))THEN D9=1:A=A+AK(L)+" "
300 NEXT:IF D9 THEN CALL IO.O
310 IF I9=0 THEN A="You see ":CR=1:CALL IO.O
320 A="":SF=0:CT=0:FOR L=1 TO 10:IF AD(L)=""THEN 360
330 CT=CT+1:CR=1:CALL IO.O:IF CT=1 AND I9 THEN A="You see ":CR=1:CALL IO.O
340 IF INSTR("aeiou",LEFT$(AD(L),1))THEN A=A+"an " ELSE A=A+"a "
350 A=A+AD(L)+", ":SF=1
360 NEXT:FOR L=1 TO 20:IF CVI(AF(L))=0 THEN 500
370 IF CVI(AF(L))>0 THEN 420
380 CR=1:CALL IO.O:GET 8,ABS(CVI(AF(L))):CT=CT+1:IF CT=1 AND I9 THEN A="You see ":CR=1:CALL IO.O
390 AI=A3:GOSUB 6780:A=AI:IF VAL(ZW$)=2 THEN A=A+" [locked]"
400 IF VAL(ZW$)=1 THEN IF ZQ$="T" THEN A=A+" [closed]"
410 A=A+", ":SF=1:GOTO 500
420 GET 6,CVI(AF(L)):IF(AX="T"OR BI="T")AND C2<>7 THEN 500
430 CR=1:CALL IO.O:AI=AJ:GOSUB 6780:CT=CT+1:IF CT=1 AND I9 THEN A="You see ":CR=1:CALL IO.O
440 A=AI:IF LEFT$(S9$,4)="DOOR"THEN AI=DZ$:GOSUB 6780:A=A+" on the "+AI+" wall"
450 IF VAL(AY)>1 THEN A=A+" [locked]"
460 IF VAL(AY)=1 THEN IF AZ="T"THEN A=A+" [closed]"
470 IF AX="T"THEN A=A+" [inv]"
480 IF BI="T"THEN A=A+" [hidden]"
490 A=A+", ":SF=1
500 NEXT L:IF SF=0 THEN IF I9=0 THEN A="nothing special.." ELSE 530
510 IF SF AND A<>""THEN A$=LEFT$(A,LEN(A)-2)
520 CALL IO.O
530 DR=DR+1:IF DR<HRT THEN 590
550 DR=0:F1=F1+3:IF F1>F2 THEN F1=F2
560 MY=MY+1:IF MY>M2 THEN MY=M2
570 IF PI THEN V1=V1-2 ELSE V1=V1+2:IF V1>V2 THEN V1=V2
580 GOSUB 6560:IF PU THEN A="You feel poison running through your veins!":CALL IO.O:IF V1<0 THEN A="You finally died from his poisonous wounds!":CALL IO.O:GOTO 6350
590 IF NM THEN GOSUB 5790
600 DR2=DR2+1:IF NM THEN 620
610 IF CVI(MN$)THEN CH=CVI(MN$):GET 7,CH:NC=1:IF CVI(AB)<0 THEN 6150 ELSE 6080
620 IF DR2>ERT THEN DR2=0:IF RND>.5 AND NM<20 THEN 6050
630 IF I9 THEN A="Do?" ELSE A="Action? "
650 IF X1 THEN X3=X1:X1=0:LM=-1:ON X3 GOTO 4660,4630,3930,2620,910,3060,2130,1990,4680,6640
655 IF X3 THEN X3=0:LM=0
660 CALL IO.I:IF NX THEN TE$="":GOTO 530
670 IF LEFT$(AL,1)="*"AND C2<>7 AND LM=0 THEN A="That command is reserved for DMs only!":GOTO 520
1320 CLOSE 1:OPEN "R",1,"SORT",4:FIELD 1,2 AS SRT1$,2 AS SRT2$:FIELD 1,4 AS SRT3$:FOR LP=1 TO 10:LSET SRT1$=MKI$(0):LSET SRT2$=MKI$(0):PUT 1,LP:NEXT
1330 LP=0:FOR SX=1 TO LOF(3)/256:GET 3,SX:IF LEFT$(AN,8)<>"ZZZZZNUL"AND VAL(LCK$)=0 AND CVI(B4)>1 THEN LP=LP+1:LSET SRT1$=B4:LSET SRT2$=MKI$(SX):PUT 1,LP
1340 NEXT:FOR LP=1 TO LOF(1)/4:FOR LN=LP+1 TO 10:GET 1,LP:L=CVI(SRT1$):AL=SRT3$:GET 1,LN:IF L<CVI(SRT1$)THEN AI=SRT3$:LSET SRT3$=AL:PUT 1,LN:GET 1,LP:LSET SRT3$=AI:PUT 1,LP
1350 NEXT:NEXT:A="Top ten users...":CALL IO.O:FOR LP=1 TO 10:GET 1,LP:LQ=CVI(SRT2$):IF LQ=0 THEN 1380
1360 GET 3,LQ:LN=CVI(B4):A=AN+" Lvl:"+STR$(LN):IF LN>9 THEN A=A+" "+A2 ELSE A=A+" "+A2
1370 CALL IO.O
1380 NEXT:CLOSE 1:KILL"SORT":GOTO 630
1390 A="You eat for a while...":GOTO 520
1400 A="You can't eat that!":GOTO 520
1410 A="Nothing happened..":GOTO 520
1420 GOSUB 7010:IF TE=0 THEN GOSUB 7050:IF TE=0 THEN GOSUB 7090:IF L=0 THEN A="You can't move that!":GOTO 520
1430 A="You move it around...":GOTO 520
1440 GOSUB 7090:IF L=0 THEN A="You can't talk to that!":GOTO 520
1450 GET 9,RM:IF CVI(KTR$)THEN A="As you begin to speak, ":AA="The monster hits you for ":GOSUB 6190:IF LN THEN 530
1460 IF CVI(FTR$)THEN N$=STR$(CVI(FTR$)):A="The monster teleports you elsewhere!":CALL IO.O:GOTO 2160
1470 A="The monster makes no response..":GOTO 520
1480 IF RM>0 THEN GET 5,RM
1490 Z9=CVI(AE(D7)):IF Z9=0 THEN IF C2=7 OR LM THEN GOSUB 6830:IF DI=1 THEN 210 ELSE 530 ELSE A="You can't go in that direction!":GOTO 520
1500 AI2=" follows you!"
1510 FOR LP=1 TO 20:IF CVI(AF(LP))<0 THEN GET 8,ABS(CVI(AF(LP))):IF VAL(BX)=0 THEN LSET AF(LP)=MKI$(0):LSET AG(LP)=MKI$(0)
1520 NEXT:PUT 5,RM:Z8=RM:IF Z9<1 OR Z9>LOF(5)/470 THEN Z9=RM:Z8=0
1830 LSET AD=MKD$(Z1#):LSET AC=DATE$:LSET B1=RIGHT$(STR$(C8),1):FOR LP=1 TO 20:LSET AC(LP)=MKI$(TX(LP)):LSET AH(LP)=MKI$(TZ(LP)):NEXT:RETURN
1840 A="Information: "+AO:CALL IO.O:A="You are a level":IF LF>10 THEN A=A+STR$(LF) ELSE A=A+" "+AR(LF)
1850 A=A+" "+AM:CALL IO.O:A=STR$(F1)+"/"+MID$(STR$(F2),2):IF W3 OR W1 THEN A=A+"(+"+MID$(STR$(W3+W1),2)+")"
1860 A=A+" Fat"+STR$(V1)+"/"+MID$(STR$(V2),2)+" Vit"+STR$(MY)+"/"+MID$(STR$(M2),2)+" Mag":CALL IO.O:FOR L=1 TO 6:A=LEFT$(A1(L),3)+STR$(F4(L)):IF L=1 THEN IF W2 THEN A=A+"(+"+MID$(STR$(W2),2)+")"
1870 A=A+" ":CR=1:CALL IO.O:NEXT:CALL IO.O:IF PI THEN A="You are dying from poison!":CALL IO.O
1880 IF I4 THEN A="You are invisible!":CALL IO.O
1890 IF W1 THEN GET 8,ABS(TX(W4)):A="You are wearing "+A3:CALL IO.O
1900 A="":IF W2 OR W3 THEN A="You are holding ":IF W2 THEN GET 8,ABS(TX(W6)):AI=A+A3:GOSUB 6780:A=AI
1910 IF W3 THEN GET 8,ABS(TX(W5)):IF W2 THEN A=A+" and "+A3:CALL IO.O ELSE A="You are holding "+A3:CALL IO.O ELSE IF W2 THEN CALL IO.O
1920 A="You are carrying"+STR$(WT)+" lbs. of treasure.":CALL IO.O:CM=0:FOR L=1 TO TR:LP=TX(L):IF LP>0 THEN GET 6,LP:AI=AJ ELSE IF LP<0 THEN GET 8,ABS(LP):AI=A3 ELSE 1950
1930 GOSUB 6780:CM=1:IF L>1 THEN A=", ":CR=1:CALL IO.O
1940 A=AI:CR=1:CALL IO.O
1950 NEXT:IF CM THEN CALL IO.O
1960 A="You have"+STR$(GG#)+" gold.":CALL IO.O:A="You need"+STR$(XP#)+" experience points to reach the next level.":GOTO 520
1970 I4=NOT I4:IF I4 THEN A="You are invisible!" ELSE A="You are no longer invisible!
1980 GOTO 520
1990 LM=0:I4=NOT I4:IF I4 THEN A="You are invisible!" ELSE A="You are no longer invisible!
2000 GOTO 520
2010 A="[R]emove/[A]dd a link?":CALL IO.I:GOSUB 6520:AL=LEFT$(AL,1):LP=1:IF AL="A"THEN LP=2 ELSE IF AL<>"R"THEN 530
2020 A="Rm# to link?":CALL IO.I:IF NX THEN 530
2030 LN=VAL(AL):IF LN<1 OR LN>LOF(5)/470 THEN 530
2040 A="Which direction?":CALL IO.I:IF NX THEN 530
2050 GOSUB 6520:D5=INSTR("NESWOUD",AL):IF D5=0 THEN 530
2060 IF LP=1 THEN GET 5,LN:LSET AE(D5)=MKI$(0):PUT 5,LN:A="Ok":GOTO 520
2070 A="Link to Rm#?":CALL IO.I:NV=VAL(AL):LP=NV:IF LP<1 OR LP>LOF(5)/470 THEN 530
2080 GET 5,LN:LSET AE(D5)=MKI$(LP):PUT 5,LN:A="Room linked":CALL IO.O:IF D5=5 THEN 530 ELSE A="Link back?":CALL IO.I:IF YE=0 THEN 530
2090 IF D1=5 THEN D8=3 ELSE IF D5=2 THEN D8=4 ELSE IF D5=3 THEN D8=1 ELSE IF D5=4 THEN D8=2 ELSE IF D5=6 THEN D8=7 ELSE IF D5=7 THEN D8=6
2100 GET 5,LP:LSET AE(D8)=MKI$(LN):PUT 5,LP:A="Ok":GOTO 520
2110 A="Are you sure you want to commit suicide?":CALL IO.I:IF YE=0 THEN 530
2120 GET 3,UX:FOR LP=1 TO 20:LSET AC(LP)=MKI$(0):LSET AH(LP)=MKI$(0):NEXT:C2=0:GOSUB 1800:PUT 3,UX:GOTO 7530
2130 IF I9 THEN A="Do?" ELSE A="Action? "
2140 A=A+"*TELE ":CALL IO.I:LM=0:N$=AL
2150 A="A dark cloud passes overhead...":CALL IO.O:A=" A bolt of lightning strikes...":CALL IO.O:A=" The cloud disappears...":CALL IO.O
2160 Z9=VAL(N$):GOSUB 6560:AI2=" teleports with you!":GOTO 1510
2170 AL=N$:NV=VAL(AL):LN=NV:IF LN<1 OR LN>LOF(5)/470 THEN 530
2190 IF AB(1)=STRING$(80,32)THEN A="No Long Description to Edit.":GOTO 520
2200 FOR CO=1 TO 4:IF AB(CO)<>STRING$(80,32)THEN AI=AB(CO):GOSUB 6780:A5(CO)=AI:A=AI:CALL IO.O:NEXT
2210 CO=CO-1:A="String to replace?":CALL IO.I:IF NX THEN 530
2220 RE$=AL:A="Replacement?":CALL IO.I:FL=0:FOR LP=1 TO CO:IF INSTR(A5(LP),RE$) THEN IF LEN(A5(LP))-LEN(RE$)+LEN(AL)>79 THEN A="Line overflow.":GOTO 520
2230 IF INSTR(A5(LP),RE$)THEN A5(LP)=LEFT$(A5(LP),INSTR(A5(LP),RE$)-1)+AL+MID$(A5(LP),INSTR(A5(LP),RE$)+LEN(RE$)):FL=FL+1
2240 NEXT:IF FL THEN A=MID$(STR$(FL),2)+" string(s) replaced." ELSE A="No Change."
2250 CALL IO.O:FOR LP=1 TO CO:LSET AB(LP)=A5(LP):NEXT:PUT 5,LN:GOTO 530
2260 LN=-1:GOSUB 7010:IF TE THEN A="It's ":GOTO 2400
2270 IF S6 THEN S6=S6-CM:IF S6<0 THEN S6=0
2280 GOSUB 7050:IF TE THEN A="You are carrying ":LN=0:GOTO 2400
2290 GOSUB 7090:IF L=0 THEN A="I cannot examine that!":GOTO 520
2820 MI=0:GOSUB 6790:IF TE>=0 OR VAL(ZZ$)THEN A="You can't use that!":GOTO 520
2830 IF VAL(BN)=0 THEN A="That has no apparent magical power!":GOTO 520
2840 IF MY<1 THEN A="You have no more power!":GOTO 520
2850 IF TZ(L)<=0 THEN TZ(L)=0:A="You can't, it's discharged!":GOTO 520
2860 GET 4,VAL(BN):MI=VAL(A4):MF=VAL(PQ$):IF MF>LF THEN A="You are not high enough level to cast the spell!":GOTO 520
2870 GET 9,RM:IF CVI(STP$)=VAL(BN)THEN A="The device explodes!":AA="You are hit for":LQ=L:GOSUB 6190:IF LN THEN L=LQ:SP=0:PB=-1:LS=34:GOSUB 3960:LS=0:PB=0:GOTO 530
2880 TZ(L)=TZ(L)-1:MY=MY-MF:IF MY<0 THEN MY=0
2890 IF SP THEN N$=V2$:GOSUB 6810:GOSUB 7050:IF TE THEN MF=10
2900 GOSUB 6560
2910 AA=SQ$:IF MI=1 OR MI=6 OR MI=7 OR MI=8 OR MI=10 THEN GOSUB 6450
2920 IF MI=6 THEN F1=F2:A="You now have"+STR$(F1)+" fatigue!":CALL IO.O:GOSUB 6560
2930 IF MI=7 THEN V1=V2:A="You now have"+STR$(F1)+" vitality!":CALL IO.O:GOSUB 6560
2940 IF MI=8 THEN IF PI THEN A="The poison disappeared!":CALL IO.O:PI=0
2950 IF MI=4 THEN A="The Gods thunder..":CALL IO.O:A="What do you wish for?":CALL IO.I:N$=AL:GOSUB 6810:GOSUB 4700:GOTO 530
2960 IF MI<>1 THEN 3010
2970 IF TE AND MF=10 THEN 2980 ELSE 3000
2980 IF C2=2 OR C2=7 THEN GET 4,VAL(BN):IF VAL(A4)<>4 THEN TZ(L)=VAL(WA$):A="You recharge it!":GOTO 520
2990 A="Nothing happened..":GOTO 520
3000 MY=M2:A="You now have"+STR$(MY)+" magic points!":CALL IO.O:GOSUB 6560
3010 IF TE AND VAL(S7$)THEN A="The scroll disintegrated!":CALL IO.O:SP=0:PB=-1:LS=34:GOSUB 3960:LS=0:PB=0 ELSE 3030
3020 IF MI=3 THEN F4(6)=F4(6)+1:IF F4(6)>25 THEN F4(6)=25:GOTO 2990 ELSE A="You feel a magical glow about you!":GOTO 520
3030 IF MI=1 OR MI=6 OR MI=7 OR MI=8 THEN 530
3040 IF MI<>10 THEN 3100
3050 Z9=VAL(TG$):AI2=" teleports with you!":GOTO 1510
3060 IF I9 THEN A="Do?" ELSE A="Action? "
3070 A=A+"*KILL ":CALL IO.I:LM=0:GOSUB 6520:N$=AL
3080 GOSUB 7090:IF MN<=0 THEN 530
3090 A="Evil laughter sounds from above...":CALL IO.O:A=" A bolt of lightning strikes...":CALL IO.O:GOTO 3370
3100 FOR L=1 TO 20:IF CVI(AF(L))<=0 THEN 3120 ELSE GET 6,CVI(AF(L))
3110 AI=S9$:GOSUB 6780:IF LEFT$(AI,LEN(N$))=N$AND VAL(TV$)=-1 THEN A="You were just thrown in jail!":CALL IO.O:Z9=TS(8):GOSUB 6560:GOTO 1500
3120 NEXT:GOSUB 7090:IF MN<=0 THEN IF MI>0 THEN MY=MY+MF:GOSUB 6560:A="Improper spell target!":GOTO 520 ELSE A="That's not here!":GOTO 520
3130 IF F1<1 THEN A="You are too exhausted to do that!":GOTO 520
3140 IF CC(MN)=0 THEN A="You were just thrown in jail!":CALL IO.O:Z9=TS(8):GOSUB 6560:GOTO 1500
3150 IF CC(MN)<0 AND MI<=0 THEN A="A magical force stops you from striking.":GOTO 520
3210 IF INT(RND*20+1)<F4(4)THEN IF MI THEN 3330 ELSE GOSUB 6460:GOTO 3330
3220 IF RND>.85 OR MI THEN 3230 ELSE 3320
3230 LP=INT(RND*3+1):IF RND>.5 THEN 3280
3240 IF LP=1 THEN A="missed!"
3250 IF LP=2 THEN A="hit a wall!"
3260 IF LP=3 THEN A="slipped!"
3270 A="You "+A:GOTO 520
3280 IF LP=1 THEN A=" stepped aside!"
3290 IF LP=2 THEN A=" jumped away!"
3300 IF LP=3 THEN A=" slipped by!"
3310 A="The "+AD(MN)+A:GOTO 520
3320 GOSUB 5690:N$=TH$:A="You missed the "+AD(MN)+"!":CALL IO.O:PB=0:GOTO 530
3330 LP=(INT(RND*F4(1)+LF/2))*XX+W2:A="You hit the "+AD(MN)+" for"+STR$(LP)
3340 IF LP=1 THEN A=A+" hit.." ELSE A=A+" hits!"
3350 CALL IO.O:IF RD(MN)-LP>0 AND LP>RD(MN)*.95 THEN A="The "+AD(MN)+" fless from your attack!":CALL IO.O:LP=INT(ZY(MN)/2):XP#=XP#-LP:A="You earn"+STR$(LP)+" experience!":CALL IO.O:GOTO 3490
3360 RD(MN)=RD(MN)-LP:IF RD(MN)>0 THEN 530
3370 IF X3 THEN A="Something " ELSE A="You "
3380 LS=0:A=A+"just killed the "+AD(MN)+"!":CALL IO.O:XP#=XP#-ZY(MN)
3390 IF XP#<0 THEN XP#=0
3400 A="On it you find":CR=1:CALL IO.O:GET 5,RM:LP=0:FOR L=1 TO 5:TT=CZ(MN,L):IF TT<=0 THEN 3460
3410 AI=CW$(MN,L):GOSUB 6780:FOR LN=1 TO 20:IF CVI(AF(LN))=0 THEN 3440
3420 NEXT:IF L=1 THEN A=" " ELSE A=""
3430 A=A+AI+", but it rolled away..":CALL IO.O:GOTO 3480
3440 AL=AI:IF LP=0 THEN LP=1:CALL IO.O
3450 GET 8,TT:LSET AG(LN)=MKI$(VAL(WA$)):LSET AF(LN)=MKI$(-TT):A=AL:CALL IO.O
3460 NEXT:IF LP=0 THEN A=" nothing..":CALL IO.O
3470 IF CVI(MN$)THEN LSET MN$=MKI$(0)
3480 PUT 5,RM
3490 FOR L=1 TO NM:IF L<MN THEN 3510
3500 Z8(L)=Z8(L+1):AD(L)=AD(L+1):RD(L)=RD(L+1):CC(L)=CC(L+1):ZY(L)=ZY(L+1):ZX(L)=ZX(L+1):FOR LP=1 TO 5:CZ(L,LP)=CZ(L+1,LP):CW$(L,LP)=CW$(L+1,LP):NEXT:CV(L)=CV(L+1):CY(L)=CY(L+1)
4050 LSET BA=MKI$(LP):LSET BB=MKI$(LN):AL=" in "+A3:IF LN<0 THEN GET 8,ABS(LN):A=SH$ ELSE GET 6,LN:A=S9$
4060 LSET RH$=A:PUT 1,L:CLOSE 1
4070 L=LQ:IF L=W6 THEN W2=0:W6=0
4080 IF L=W5 THEN W3=0:W5=0
4090 IF L=W4 THEN W1=0:W4=0
4100 IF L<W6 THEN W6=W6-1
4110 IF L<W5 THEN W5=W5-1
4120 IF L<W4 THEN W4=W4-1
4130 FOR TE=L TO TR-1:TX(TE)=TX(TE+1):TZ(TE)=TZ(TE+1):NEXT:TX(TR)=0:TZ(TR)=0:TR=TR-1:IF TR<0 THEN TR=0:WT=0
4140 IF LN<0 THEN GET 8,ABS(LN):WT=WT-VAL(W6$):A=A3 ELSE GET 6,LN:A=AJ
4150 IF PB=0 THEN IF I9 THEN A="Ok":CALL IO.O ELSE AI="You drop "+A:GOSUB 6780:A=AI+AL:CALL IO.O
4160 IF WT<0 THEN WT=0
4170 IF SP THEN 530
4180 IF LS=34 THEN IF PB=0 THEN A="It was discarded..":GOTO 520 ELSE RETURN
4190 FOR LQ=1 TO 20:IF CVI(AF(LQ))=0 THEN LSET AF(LQ)=MKI$(LN):LSET AG(LQ)=MKI$(LP):PUT 5,RM ELSE NEXT:LA=1:IF PB=0 THEN A="It rolled away..":CALL IO.O
4200 IF PB THEN RETURN ELSE 530
4210 GOSUB 7050:IF TE=0 THEN A="You aren't carrying that!":GOTO 520
4220 IF VAL(W0$)>0 THEN IF TZ(L)<=0 THEN A="You can't, it's broken!":GOTO 520 ELSE W2=VAL(W0$):W6=L:A="Ok":GOTO 520
4230 A="You can't wield that!":GOTO 520
4240 GOSUB 7050:IF TE=0 THEN A="You aren't carrying that!":GOTO 520
4250 IF VAL(W0$)=>0 THEN A="You can't wear that!":GOTO 520
4260 IF TZ(L)<=0 THEN A="You can't, it's broken!":GOTO 520
4270 IF VAL(RB$)<0 THEN W3=ABS(VAL(W0$)):W5=L ELSE W1=ABS(VAL(W0$)):W4=L
4280 A="Ok":GOTO 520
4290 GOSUB 7050:IF TE=0 THEN A="You aren't carrying that!":GOTO 520
4300 IF L=W5 THEN W5=0:W3=0:GOTO 4330
4310 IF L=W4 THEN W4=0:W1=0:GOTO 4330
4320 IF L=W6 THEN W6=0:W2=0 ELSE A="You can't do that!":GOTO 520
4330 A="Ok":GOTO 520
4340 IF RM<>TS(10)THEN A="Find the Pawn Shop..":GOTO 520
4350 GOSUB 7050:IF TE=0 THEN A="You can't sell that!":GOTO 520
4360 IF TX(L)>0 THEN A="The Fence takes it!":CALL IO.O:GOTO 4450
4370 IF VAL(BX)=0 THEN 4390 ELSE IF VAL(ZW$)<2 THEN 4390
4380 A="The Fence fumbles with it a bit..":CALL IO.O:A="And says: "+CHR$(34)+"Arrghh!! Can't open the damn thing!"+CHR$(34):GOTO 520
4400 AI=SH$:GOSUB 6780:AL=AI:GOSUB 6530:AI=AL:GOSUB 6530:A="The Fence says: "+CHR$(34)+"Well, I'll give you":LN=0:IF VAL(BX)=0 THEN 4430
4410 LX!=0:LN=1:GOSUB 7180:FOR L=1 TO LOF(1)/34:GET 1,L:LP=CVI(BB):IF LP<0 THEN GET 8,ABS(LP):LX!=LX!+VAL(V3$)
4420 NEXT:AI="contents of the "+AI
4430 A=A+STR$(LX!)+" Gold peices for the "+AI+"."+CHR$(34):CALL IO.O:A="Well??":CALL IO.I:GOSUB 6520:IF YE THEN GG#=GG#+LX!:A="Ok, fine with me then..":CALL IO.O ELSE A="Tough luck for you then!":GOTO 520
4440 IF LN THEN FOR L=1 TO LOF(1)/34:LSET BA=MKI$(0):LSET BB=MKI$(0):LSET RH$="":PUT 1,L:NEXT:GOTO 530
4700 AL=N$:GOSUB 6530:L4=0:FOR L2=1 TO LOF(8)/128:GET 8,L2:IF AL=LEFT$(A3,LEN(AL))THEN TE=L2:L4=L4+1:IF L4=S6 THEN L4=L2:GOTO 4780
4710 NEXT:LP=L4:IF S6 THEN S6=S6-L4
4720 L4=0:IF C2<>7 THEN 4750
4730 FOR L2=1 TO LOF(6)/128:GET 6,L2:IF AL=LEFT$(AJ,LEN(AL))THEN TE=L2:L4=L4+1:IF L4=S6 THEN L4=-L2:GOTO 4800
4740 NEXT
4750 IF L4=0 AND LP=0 THEN A="I can't find that..":GOTO 520
4760 IF L4=1 AND LP=0 THEN L4=-TE:GOTO 4800
4770 IF L4=0 AND LP=1 THEN L4=TE ELSE A="I have"+STR$(L4+LP)+" of those":CALL IO.O:A="Specify NAME#X (ex:a sword#12)":GOTO 520
4780 GET 8,L4:IF VAL(BX)AND C2<>7 THEN A="I can't drop that!":GOTO 520
4790 IF VAL(BN) THEN GET 4,VAL(BN):IF VAL(A4)=4 AND C2<>7 THEN A="I can't drop that!":GOTO 520
4800 LA=0:FOR O1=1 TO 20:IF CVI(AF(O1))=0 THEN LA=O1:O1=20
4810 NEXT:IF LA=0 THEN A="I can't drop anything, the room is full!":GOTO 520
4820 GET 5,RM:LSET AG(LA)=MKI$(VAL(WA$)):LSET AF(LA)=MKI$(-L4):PUT 5,RM:GOTO 530
4830 A="You are a level":IF LF>10 THEN A=A+STR$(LF) ELSE A=A+" "+AR(LF)
4840 A=A+" "+AM:CALL IO.O:A=STR$(F1)+"/"+MID$(STR$(F2),2):IF W3 OR W1 THEN A=A+"(+"+MID$(STR$(W3+W1),2)+")"
4850 A=A+" Fat "+STR$(V1)+"/"+MID$(STR$(V2),2)+" Vit "+STR$(MY)+"/"+MID$(STR$(M2),2):CALL IO.O:FOR L=1 TO 6:A=LEFT$(A1(L),3)+STR$(F4(L)):IF L=1 THEN IF W2 THEN A=A+"(+"+MID$(STR$(W2),2)+")"
4860 A=A+" ":CR=1:CALL IO.O:NEXT:GOTO 520
4870 IF F1<F2/4 THEN A="The Gods teleport you elsewhere..":CALL IO.O:GOTO 4920
4880 FOR L=1 TO 7:IF CVI(AE(L))THEN 4920
4890 NEXT:FOR L=1 TO 20:IF CVI(AF(L))>0 THEN GET 6,CVI(AF(L)):IF VAL(AU)>0 THEN 4920
4900 NEXT:A="You're right, there doesn't seem to be any way out..":CALL IO.O
4910 Z9=TS(9):NM=0:GOSUB 6560:GOTO 1500
4920 A="The Gods laugh at your attempt for divine restitution..":GOTO 520
4930 GOSUB 5660:IF L>20 OR BI="T"OR VAL(AU)<=0 OR VAL(A7)THEN A="You can't do that!":GOTO 520
4940 IF VAL(AY)=1 THEN A="It's already open!":GOTO 520
4950 IF F4(2)<INT(RND*6)+10 OR F4(1)<INT(RND*8)+10 OR RND>.5 THEN A="You didn't smash it open!":GOTO 520
4960 LSET AY="1":PUT 6,CVI(AF(L)):A="You smash it open!":GOTO 520
4970 GOSUB 5660:IF L<21 THEN 5040
4980 GOSUB 7010:IF TE<0 THEN 5000 ELSE IF S6 THEN S6=S6-CM:IF S6<0 THEN S6=0
4990 GOSUB 7050:IF TE>=0 THEN 5070
5000 IF VAL(BX)=0 THEN 5070
5010 IF VAL(ZW$)<>1 THEN 5070
5020 IF ZQ$="T"THEN 5080
5030 LSET ZQ$="T":PUT 8,ABS(TE):GOTO 5090
5040 IF VAL(AY)<>1 THEN 5070
5050 IF AZ="T"THEN 5080
5060 LSET AZ="T":PUT 6,CVI(AF(L)):GOTO 5090
5070 A="You can't close that!":GOTO 520
5080 A="It's already closed!":GOTO 520
5090 A="You close it!":GOTO 520
5100 GOSUB 5660:IF L<21 THEN 5170
5110 GOSUB 7010:IF TE<0 THEN 5130 ELSE IF S6 THEN S6=S6-CM:IF S6<0 THEN S6=0
5120 GOSUB 7050:IF TE>=0 THEN 5200
5130 IF VAL(BX)=0 THEN 5200
5140 IF VAL(ZW$)<>1 THEN 5200
5150 IF ZQ$="F"THEN 5210
5160 LSET ZQ$="F":PUT 8,ABS(TE):GOTO 5220
5170 IF VAL(AY)<>1 THEN 5200
5180 IF AZ="F"THEN 5210
5190 LSET AZ="F":PUT 6,CVI(AF(L)):GOTO 5220
5200 A="You can't open that!":GOTO 520
5210 A="It's already open!":GOTO 520
5220 A="You open it!":GOTO 520
5230 GOSUB 5660:IF L<21 THEN 5300
5240 GOSUB 7010:IF TE<0 THEN 5260 ELSE S6=S6-CM:IF S6<0 THEN S6=0
5250 GOSUB 7050:IF TE>=0 THEN 5340
5260 IF VAL(BX)=0 THEN 5340
5270 IF VAL(ZW$)=2 THEN 5350
5280 IF VAL(ZW$)=0 THEN IF LM=0 OR C2<>7 THEN 5340
5290 GET 8,ABS(TE):LSET ZW$="2":LSET ZQ$="T":PUT 8,ABS(TE):GOTO 5360
5430 GOSUB 7010:IF TE<0 THEN 5450 ELSE S6=S6-CM:IF S6<0 THEN S6=0
5440 GOSUB 7050:IF TE>=0 THEN 5630
5450 IF VAL(BX)=0 THEN 5630
5460 IF VAL(ZW$)=0 THEN IF LM=0 OR C2<>7 THEN 5630
5470 IF VAL(ZW$)=1 THEN 5640
5480 LN=VAL(KE$):FOR LP=1 TO TR:IF TX(LP)<0 THEN GET 8,ABS(TX(LP)):IF VAL(KE$)=LN THEN 5500
5490 NEXT:GOTO 5650
5500 GET 8,ABS(TE):LSET ZW$="1":LSET ZQ$="T":PUT 8,ABS(TE):GOTO 5620
5510 IF VAL(AU)<=0 OR VAL(AY)=0 THEN 5630
5520 IF VAL(AY)=1 THEN 5640
5530 IF VAL(A7)=0 THEN 5610
5540 IF LS<>25 THEN 5570
5550 FOR LP=1 TO TR:IF TX(LP)<0 THEN GET 8,ABS(TX(LP)):IF VAL(A7)=VAL(KE$)THEN 5610
5560 NEXT:GOTO 5650
5570 IF C2<>3 AND C2<>7 THEN A="You can't do that!":GOTO 520
5580 IF F4(1)<10 THEN A="You aren't strong enough!":GOTO 520
5590 IF F4(2)<10 THEN A="You don't have the intelligence!":GOTO 520
5600 IF F4(2)<INT(RND*6)+9 OR F4(1)<INT(RND*8)+9 OR RND>.5 THEN A="You didn't unlock it!":GOTO 520
5610 LSET AY="1":LSET AZ="T":PUT 6,CVI(AF(L))
5620 A="You unlock it!":GOTO 520
5630 A="You can't do that!":GOTO 520
5640 A="It's already unlocked!":GOTO 520
5650 A="You don't have the key!":GOTO 520
5660 CM=0:GET 5,RM:FOR L=1 TO 20:IF CVI(AF(L))>0 THEN GET 6,CVI(AF(L)):AL=S9$:N$=LEFT$(N$,3):GOSUB 6520:IF LEFT$(AL,LEN(N$))=N$THEN CM=CM+1:IF S6=0 OR CM=S6 THEN RETURN
5670 NEXT:RETURN
5680 IF CVI(PTR$)=0 OR W2=0 OR W3=0 THEN RETURN
5690 LP=INT(RND*4+1):IF LP=1 THEN A="You fumbled!"
5700 IF LP=2 THEN A="You stumbled!"
5710 IF LP=3 THEN A="You tripped!"
5720 IF LP=4 THEN A="You fell!"
5730 CR=1:CALL IO.O:PB=0:TH$=N$:IF W3 THEN SP=0:PB=-1:GET 8,ABS(TX(W5)):AI=SH$:GOSUB 6780:AL=AI:GOSUB 6530:IF W2 THEN A=" and "+AL ELSE A=" You dropped your "+AL+"!" ELSE A=""
5740 IF W2 THEN SP=0:PB=-1:GET 8,ABS(TX(W6)):AI=SH$:GOSUB 6780:AL=AI:GOSUB 6530:A=" You dropped your "+AL+A+"!"
5750 CALL IO.O:LA=0:IF PB AND W3 THEN L=W5:GOSUB 3960
5760 IF PB AND W2 THEN L=W6:GOSUB 3960
5770 IF LA THEN A="It rolled away..":CALL IO.O
5780 PB=0:RETURN
5790 FOR L=1 TO NM:IF GQ OR CC(L)<=0 THEN 6040
5800 XX=ABS(ZX(L))+1
5810 IF XX>10 THEN CC(L)=CC(L)+1:IF CC(L)>3 THEN CC(L)=1:IF RD(L)+INT(RD(L)*.1)<32767 THEN RD(L)=RD(L)+INT(RD(L)*.1)
5820 IF CY(L)=0 THEN 5880
5830 LF=LF-1:A="You've been drained a level!":CALL IO.O:XP#=2^(LF+6):IF LF=0 THEN LF=1:AA="You now become a "+AD(L)+"!":GOTO 6400
5840 F2=0:V2=0:M2=0:GOSUB 4550:IF F1>F2 THEN F1=F2
5850 IF V1>V2 THEN V1=V2
5860 IF MY>M2 THEN MY=M2
5870 GOSUB 6560
5880 IF CV(L)THEN IF PI=0 THEN PI=-1:A="The "+AD(L)+" casts a poison spell!":CALL IO.O:A="You've been poisoned!":CALL IO.O:GOTO 6040
5890 IF INT(RND*25+1)>F4(2)/2 THEN 5940
5900 LP=INT(RND*3+1):IF LP=1 THEN A=" missed!"
5910 IF LP=2 THEN A=" hit itself!"
5920 IF LP=3 THEN A=" struck a wall!"
5930 A="The "+AD(L)+A:CALL IO.O:GOTO 6040
5940 LP=INT(RND*RD(L)/18-(W3+W1)*.5)*XX:IF LP<1 THEN 6040
5950 IF I4 THEN A="Your invisibility protects you!":CALL IO.O:RETURN
5960 A="The "+AD(L)+" attacks you!":CALL IO.O:FY=F1:VY=V1:FY=FY-LP:A="The "+AD(L)+" hits you for":IF FY>=0 THEN A=A+STR$(LP)+" fat!" ELSE EX=ABS(FY):FY=0:A=A+STR$(LP-EX)+" fat and"+STR$(EX)+" vit!":VY=VY-EX:IF VY<=0 THEN VY=0:CALL IO.O:GOTO 6330
6080 GET 7,CH:NC=INT(RND*CVI(BF))+1:IF NC>10 THEN NC=10
6090 WHILE NC+NM>20:NC=NC-1:WEND:IF NC<=0 THEN 630
6100 IF NC>1 THEN AI=PL$:A=AR(NC)+" " ELSE AI=BS:IF INSTR("aeiou",LEFT$(AI,1))THEN A="an " ELSE A="a "
6110 GOSUB 6780:A=A+AI:F3!=RND:IF F3!>.95 THEN IF NC>1 THEN A=A+" attack you!":GOTO 6140 ELSE A=A+" attacks you!":GOTO 6140
6120 IF F3!>.9 THEN IF NC>1 THEN A=A+" suddenly appear!":GOTO 6140 ELSE A=A+" suddenly appears!":GOTO 6140
6130 IF F3!>.85 THEN A="You are approached by "+A+"!" ELSE A="You encounter "+A+"!"
6140 UC1=ASC(MID$(A,1,1)):MID$(A$,1,1)=CHR$(UC1+32*(UC1>96 AND UC1<123)):CALL IO.O
6150 AI=BS:GOSUB 6780:FOR L=NM+1 TO NM+NC:AD(L)=AI:NEXT:FOR L=NM+1 TO NM+NC:RD(L)=CVI(BG):ZY(L)=CVI(A8):ZX(L)=CVI(AB):CV(L)=VAL(PP$):CY(L)=VAL(B6):Z8(L)=CH:CC(L)=CVI(AB)
6160 FOR LP=1 TO 5:IF CVI(AJ(LP))>0 AND RND<.9 THEN CZ(L,LP)=CVI(AJ(LP)):GET 8,CZ(L,LP):AI=A3:GOSUB 6780:CW$(L,LP)=AI
6170 NEXT:NEXT:NM=NM+NC:GET 9,RM:IF CVI(MTR$)<>CH THEN 630
6180 A="As you step forward,":AA="The monster hits you for":GOSUB 6190:GOTO 630
6190 LN=0:IF CVI(ETR$)THEN ERT=CVI(ETR$)
6200 IF CVI(HTR$)THEN HRT=CVI(HTR$)
6210 LP=CVI(TTR$):IF LP>0 THEN LN=1:FY=F1:VY=V1:FY=FY-LP:IF FY>=0 THEN CALL IO.O:A=AA+STR$(LP)+" fat!":F1=FY ELSE EX=ABS(FY):A=AA+STR$(F1)+" fat and "+STR$(EX)+" vit!":F1=0:VY=VY-EX:IF VY<=0 THEN VY=0:CALL IO.O:GOTO 6320 ELSE CALL IO.O:V1=VY
6220 IF LP<0 THEN LN=1:CALL IO.O:A=AA+STR$(LP)+" vit!":V1=V1-EX:IF V1<=0 THEN VY=0:GOTO 6320
6230 AL="":ON CVI(ITR$)+1 GOTO 6300,6280,6260
6240 L=0:W1=0:W4=0:FOR LP=1 TO 20:IF TX(LP)<0 THEN GET 8,ABS(TX(LP)):IF VAL(W0$)<0 AND VAL(RB$)>0 AND TZ(LP)THEN TZ(LP)=0:L=1:LN=1
6250 NEXT:IF L THEN AL="All your armor crumbles!":GOTO 6300
6260 L=0:W3=0:W5=0:FOR LP=1 TO 20:IF TX(LP)<0 THEN GET 8,ABS(TX(LP)):IF VAL(W0$)<0 AND VAL(RB$)<0 AND TZ(LP)THEN TZ(LP)=0:L=1:LN=1
6270 NEXT:IF L THEN AL="All your sheilds break in half!":GOTO 6300
6280 L=0:W2=0:W6=0:FOR LP=1 TO 20:IF TX(LP)<0 THEN GET 8,ABS(TX(LP)):IF VAL(W0$)>0 AND TZ(LP)THEN TZ(LP)=0:L=1:LN=1
6290 NEXT:IF L THEN AL="All your weapons break!"
6300 IF LN THEN CALL IO.O:IF AL<>"" THEN A=AL:CALL IO.O
6310 RETURN
6320 AI2=A:GOTO 6350
6330 IF INSTR("aeiou",LEFT$(AD(L),1))THEN A="an " ELSE A="a "
6340 AI2="You were just killed by "+A+AD(L)+"!"
6350 AI3="You have just died!":W1=0:W2=0:W3=0:W4=0:W5=0:W6=0:IF C2=7 THEN A=AI2:CALL IO.O:A=AI3:CALL IO.O:A="You were resurrected!":CALL IO.O:Z9=TS(9):NM=0:GOSUB 6560:GOTO 1530
6360 IF LF<2 OR F4(5)<2 THEN 6400
6370 GOSUB 6410:RM=TS(9):Z9=TS(9):NM=0:IF INT(RND*20+1)+F4(5)/2>25 THEN LF=LF-1 ELSE LF=INT(LF*.5+.5)
6380 F4(5)=F4(5)-1:F4(6)=F4(6)-1:RR=INT(RND*4+1):F4(RR)=F4(RR)-1:FOR LP=1 TO 6:IF F4(LP)<1 THEN F4(LP)=1
6720 CLOSE 1:OPEN "R",1,BD,1:IF LOF(1)=0 THEN RETURN
6730 CLOSE 1:OPEN "I",1,BD:IN=1:WHILE EOF(1)=0:LINE INPUT#1,A:CALL IO.O:IF TF THEN IN=0:RETURN
6740 WEND:IN=0:RETURN
6750 GET 3,UX
6760 AI=AN:GOSUB 6780:AO=AI:AI=PS$:GOSUB 6780:AF=AI:AM=A2:C2=VAL(A1):FOR LN=1 TO 6:F4(LN)=CVI(A2(LN)):NEXT:RM=CVI(RO$):LF=CVI(B4):XP#=CVD(A9):GG#=CVD(BT):F1=CVI(B9):F2=CVI(BC):V1=CVI(V4$):V2=CVI(V5$):MY=CVI(BR):M2=CVI(BP):PI=VAL(BZ)
6770 LR=VAL(LR$):I4=VAL(BH):C8=VAL(B1):Z1#=CVD(AD):FOR LP=1 TO 20:TZ(LP)=CVI(AC(LP)):TZ(LP)=CVI(AH(LP)):NEXT:RETURN
6780 WHILE RIGHT$(AI,1)=" ":AI=LEFT$(AI,LEN(AI)-1):WEND:RETURN
6790 SP=INSTR(V2$," "):IF SP THEN N$=LEFT$(V2$,SP-1):V2$=MID$(V2$,SP+1):GOSUB 6810
6800 GOSUB 7050:RETURN
6810 S6=0:LP=INSTR(N$,"#"):IF LP THEN S6=VAL(MID$(N$,LP+1)):N$=LEFT$(N$,LP-1)
6820 RETURN
6830 DI=0:A="Create a room there?":CALL IO.I:IF YE=0 THEN RETURN
6840 FG=49:A="Short Description?":CALL IO.I:GOSUB 6970:IF NX THEN RETURN
6850 S5=LOF(5)/470+1:GET 5,S5:LSET AP=AL:A="Long Description":CALL IO.O:FOR LP=1 TO 4:A="?":CALL IO.I:IF NX THEN 6870
6860 GOSUB 6970:LSET AB(LP)=AL:NEXT
6870 IF D7=1 THEN D8=3
6880 IF D7=2 THEN D8=4
6890 IF D7=3 THEN D8=1
6900 IF D7=4 THEN D8=2
6910 IF D7=5 THEN D8=0
6920 IF D7=6 THEN D8=7
6930 IF D7=7 THEN D8=6
6940 FOR LP=LP TO 4:LSET AB(LP)=STRING$(80,32):NEXT:S4=RM:LSET AE(D8)=MKI$(S4):LSET A6=MKI$(0):LSET MN$=MKI$(0)
6950 DI=1:RM=S5:PUT 5,S5:LSET STP$=MKI$(0):LSET MTR$=MKI$(0):LSET HTR$=MKI$(0):LSET ETR$=MKI$(0):LSET TTR$=MKI$(0):LSET ITR$=MKI$(0):LSET KTR$=MKI$(0):LSET PTR$=MKI$(0):LSET FTR$=MKI$(0):PUT 9,LOF(9)/18+1:IF S4<1 OR S4>LOF(5)/470 THEN RETURN
6960 GET 5,S4:LSET AE(D7)=MKI$(S5):PUT 5,S4:RETURN
6970 IF LEFT$(AL,1)=" "THEN AL=MID$(AL,2):GOTO 6970
6980 RETURN
6990 IF RIGHT$(AL,1)="."THEN AL=LEFT$(AL,LEN(AL)-1):GOTO 6990
7000 RETURN
7010 TE=0:CM=0:TN=0:IF N$=""THEN RETURN
7020 FOR L=1 TO 20:IF CVI(AF(L))>0 THEN GET 6,CVI(AF(L)):AI=S9$ ELSE IF CVI(AF(L))<0 THEN GET 8,ABS(CVI(AF(L))):AI=SH$ ELSE 7040
7030 GOSUB 6780:AL=AI:GOSUB 6520:IF LEFT$(AL,LEN(N$))=N$THEN TE=CVI(AF(L)):CM=CM+1:IF S6=0 OR CM=S6 THEN TN=CVI(AG(L)):RETURN
7040 NEXT:TE=0:RETURN
7050 TE=0:CM=0:TN=0:IF N$=""THEN RETURN
7060 FOR L=1 TO TR:IF TX(L)>0 THEN GET 6,TX(L):AI=S9$ ELSE IF TX(L)<0 THEN GET 8,ABS(TX(L)):AI=SH$ ELSE 7080
7070 GOSUB 6780:AL=AI:GOSUB 6520:IF LEFT$(AL,LEN(N$))=N$THEN TE=TX(L):CM=CM+1:IF S6=0 OR CM=S6 THEN TN=TZ(L):RETURN
7080 NEXT:TE=0:RETURN
7090 MN=0:CM=0:L=0:IF N$=""THEN RETURN
7100 FOR L=1 TO NM:LN=0:LP=0
7110 LN=INSTR(LN+1,AD(L)," "):IF LN THEN LP=LN:GOTO 7110
7120 AL=MID$(AD(L),LP+1):GOSUB 6520:IF LEFT$(AL,LEN(N$))=N$ THEN MN=L:CM=CM+1:IF S6=0 OR CM=S6 THEN RETURN
7130 NEXT:L=0:MN=0:RETURN
7140 NX=0:FOR SX=1 TO LOF(3)/256:GET 3,SX:IF AL+STRING$(30-LEN(AL),32)<>AN THEN 7170
7150 IF UX=SX OR VAL(LCK$) THEN NX=1
7160 RETURN
7170 NEXT:NX=1:RETURN
7180 AL=BO:CLOSE 1:OPEN "R",1,PA1$+AL+".CTN",34:FIELD 1,2 AS BA,2 AS BB,30 AS RH$:RETURN
7190 IF LEFT$(DATE$,2)<>LEFT$(AC,2)OR AC=DATE$ THEN RETURN
7200 FOR LP=1 TO VAL(MID$(DATE$,4,2))-VAL(MID$(AC,4,2)):Z1#=Z1#+INT(Z1#*.06):NEXT:RETURN
7210 IF RM<>TS(10)THEN A="Find the Pawn Shop..":GOTO 520
7220 CALL IO.O:A="The Fence asks: "+CHR$(34)+"Now what do ya want?"+CHR$(34):FG=1:CALL IO.I:GOSUB 1800:PUT 3,UX:GOSUB 6520
7230 L=INSTR("DTWB?Q",AL):IF L THEN ON L GOTO 7270,7310,7360,7260,7250,630
7240 A="Type ? for help":GOTO 7220
7250 BD=PA2$+"BANKHELP.HLP":GOSUB 6720:GOTO 7220
7260 A="He fumbles with his ledgers and says:":CALL IO.O:A=CHR$(34)+"You have"+STR$(GG#)+" Gold and"+STR$(Z1#)+" in the bank"+CHR$(34):GOTO 7220
7270 IF GG#<=0 THEN A=CHR$(34)+"You have no Gold to deposit!"+CHR$(34):GOTO 7220
7280 A=CHR$(34)+"How much(0-"+MID$(STR$(GG#),2)+")?"+CHR$(34):CALL IO.I:NV=VAL(AL):G1#=NV:IF G1#<=0 THEN 7220
7290 IF G1#>GG#THEN A=CHR$(34)+"You don't have that much Gold!"+CHR$(34):GOTO 7220
7300 Z1#=Z1#+G1#:GG#=GG#-G1#:A="You hand him the Gold..":GOTO 7220
7310 IF Z1#<=0 THEN A=CHR$(34)+"You have nothing in your account to transfer!"+CHR$(34):GOTO 7220
7320 A=CHR$(34)+"How much(0-"+MID$(STR$(Z1#),2)+")?"+CHR$(34):CALL IO.I:NV=VAL(AL):G1#=NV:IF G1#<=0 THEN 7220
7330 IF G1#>Z1# THEN A=CHR$(34)+"You don't have that much Gold!":GOTO 7220
7340 A=CHR$(34)+"Transfer to what person?":CALL IO.I:GOSUB 6520:GOSUB 7140:IF NX THEN A=CHR$(34)+"There's none in my ledgers with that name!":GOTO 7220
7350 Z1#=Z1#-G1#:G2#=CVD(AD):LSET AD=MKD$(G1#+G2#):PUT 3,SX:A="The Fence works with his ledgers for a while..":CALL IO.O:A=CHR$(34)+MID$(STR$(G1#),2)+" transferred to his account.."+CHR$(34):GOTO 7220
7360 IF Z1#<=0 THEN A=CHR$(34)+"You have nothing to withdraw!"+CHR$(34):GOTO 7220
7370 A=CHR$(34)+"How much(0-"+MID$(STR$(Z1#),2)+")?"+CHR$(34):CALL IO.I:NV=VAL(AL):G1#=NV:IF G1#<=0 THEN 7220
7380 IF G1#>=GG# THEN A=CHR$(34)+"You don't have that much Gold!"+CHR$(34):GOTO 7220
7390 Z1#=Z1#-G1#:GG#=GG#+G1#:A="The fence hands you the Gold..":GOTO 7220
7400 CLOSE 4,5,6,7,8,9:OPEN "R",5,PA1$+"ROOMS.DAT",470:OPEN "R",6,PA1$+"OBJECTS.DAT",256:OPEN "R",7,PA1$+"MONSTERS.DAT",128
7410 OPEN "R",8,PA1$+"TREASURE.DAT",128:OPEN "R",4,PA1$+"SPELLS.DAT",128:OPEN "R",9,PA1$+"EVENT.DAT",18
7420 FIELD 4,30 AS SQ$,80 AS B2,2 AS PQ$,2 AS A4,5 AS TG$,9 AS B7:FIELD 5,80 AS AB(1),80 AS AB(2),80 AS AB(3),80 AS AB(4),2 AS A6,2 AS B7,2 AS AE(1),2 AS AE(2),2 AS AE(3),2 AS AE(4),2 AS AE(5),2 AS AE(6),2 AS AE(7),50 AS AP,2 AS MN$
7430 FOR LP=1 TO 20:FIELD 5,(LP-1)*2+390 AS B7,2 AS AF(LP):NEXT:FOR LP=1 TO 20:FIELD 5,(LP+19)*2+390 AS B7,2 AS AG(LP):NEXT
7440 FIELD 6,30 AS AJ,30 AS S9$,5 AS DZ$,5 AS AU,1 AS AX,3 AS TV$,5 AS AY,5 AS LO$,1 AS BL,1 AS BI,1 AS AZ,5 AS A7,1 AS ZD$,35 AS B7,128 AS BV
7450 FIELD 7,30 AS BS,30 AS PL$,2 AS AJ(1),2 AS AJ(2),2 AS AJ(3),2 AS AJ(4),2 AS AJ(5),2 AS A8,2 AS BF,2 AS AB,2 AS BG,2 AS PP$,2 AS B6,46 AS B7
7460 FIELD 8,30 AS A3,5 AS W6$,5 AS V3$,3 AS BN,5 AS B7,4 AS W0$,2 AS B7,1 AS QM$,30 AS SH$,5 AS KE$,2 AS S7$,5 AS WA$,2 AS BX,8 AS BO,5 AS F5$,2 AS RB$,2 AS ZZ$,1 AS ZW$,1 AS ZQ$,10 AS B7
7470 FIELD 9,2 AS STP$,2 AS MTR$,2 AS HTR$,2 AS ETR$,2 AS TTR$,2 AS ITR$,2 AS KTR$,2 AS PTR$,2 AS FTR$
7480 FOR LP=1 TO 20:FIELD 5,(LP-1)*2 AS B7,2 AS AC(LP):NEXT:FOR LP=1 TO 20:FIELD 5,(LP+19) AS B7,2 AS AH(LP):NEXT
7490 FIELD 3,80 AS B7,30 AS AN,20 AS PS$,20 AS A2,1 AS A1,2 AS A2(1),2 AS A2(2),2 AS A2(3),2 AS A2(4),2 AS A2(5),2 AS A2(6),10 AS B7,2 AS RO$,2 AS B4
7500 FIELD 3,177 AS B7,8 AS A9,8 AS BT,1 AS B1,2 AS B9,2 AS BC, 2 AS V4$,2 AS V5$,2 AS BR,2 AS BP,2 AS BZ,2 AS B7,2 AS BH,2 AS B7,2 AS LCK$,2 AS B7,8 AS AD,8 AS AE,10 AS AC:RETURN
7510 A="Are you sure?":CALL IO.I:IF YE=0 THEN 630
7520 IF SG THEN GOSUB 1800:PUT 3,UX
7530 IF RM<=0 OR RM>LOF(5)/470 THEN 7560
7540 GET 5,RM:FOR LP=1 TO 20:IF CVI(AF(LP))<0 THEN GET 8,ABS(CVI(AF(LP))):IF VAL(BX)=0 THEN LSET AF(LP)=MKI$(0):LSET AG(LP)=MKI$(0)
7550 NEXT:PUT 5,RM
7560 KEY OFF:FOR LP=1 TO 10:KEY LP,"":NEXT
7570 EXIT SUB
7580 END SUB
7590 PRINT "Error"ERR" in module DNDBBS1 number"ERL